The present invention relates to a system for obtaining computer addresses.
A computer network is a geographically distributed collection of communication links and sub-networks interconnected by intermediate stations, such as routers, for transporting data between end stations coupled to the network. A local area network (LAN) may be an example of such a sub-network consisting of a transmission medium, such as coaxial cable or twisted pair, that provides relatively short distance communication among the interconnected stations. Communication links, on the other hand, may take the form of wide area networks (WANs), such as public or private telecommunications facilities, and dial-up lines of a switched telephone network that connect stations to the network via modems. The stations typically communicate by exchanging discrete packets or frames of data according to predefined protocols. In this context, a protocol consists of a set of rules defining how the stations interact with each other.
Most networks are typically organized as a series of hardware and software levels or xe2x80x9clayersxe2x80x9d within each station. These layers interact to format data for transfer between, e.g., a source station and a destination station communicating over the network. Specifically, predetermined services are performed on the data as it passes through each layer and the layers communicate with each other by predefined protocols. This layered design permits each layer to offer selected services to its higher layers for the details of actual implementation of the services.
Modern communication architectures are organized as such layered designs. Whereas the lower layers of these architectures are generally standardized and, typically implemented in hardware and firmware, the higher layers are generally implemented in the form of software running in the stations attached to the network. Examples of such communications architectures include Novell Inc.""s NetWare architecture, Apple Computer Inc.""s AppleTalk architecture, and the Internet communications architecture.
The Internet architecture is represented by four layers which are termed, in ascending interfacing order, a network interface, an internetwork, a transport, and application layers. These layers are arranged to form a protocol stack in each communicating station of the network. FIG. 1 illustrates a schematic block diagram of existing Internet protocol stacks 125 and 127 used to transmit data between a source station 110 and a destination station 150, respectively, of a LAN environment 100. As can be seen, the stacks 125 and 175 are physically connected through a communications channel 180 at the network interface layers 120 and 160. For each of description, the protocol stack 125 will be described.
In general, the lower layers of the communications stack provide inter-networking services and the upper layers, which are the user of these services, collectively provide common network application services. The transport layer 114 serves as the boundary between the network-specific elements and the application-specific elements. The transport layer""s fundamental service is to move a user""s data from its source to its destination over a communication path using the internetwork subsystem. To do this effectively, the transport service operates end-to-end whether the path is over a single sub-network or across multiple interconnected sub-networks.
The application layer 112 provide services suitable for the different types of applications using the network, such as, terminal connections, electronic mail, the Simple Mail Transfer Protocol, and the File Transfer Protocol. The lower network interface layer 120 of the Internet architecture accepts industry standards, such as IEEE standard 802, which defines a flexible network architecture oriented to the implementation of LANs.
Specifically, the IEEE approach addresses LAN protocols that occupy physical and data link sub-layers of layer 120. The physical layer 126 is concerned with the actual transmission of signals across the communication channel and provides which is usually referred to as the xe2x80x9cwirexe2x80x9d between two nodes and a network. In this context, the physical layer defines the types of cabling, plugs, and connectors used in connection with the channel.
The data link sub-layer, on the other hand, is responsible for transmission of data from one station to another. In the IEEE 802 architecture, the data link layer is divided into two sub-layers. Logical Link Control (LLC 122) and Media Access Control (MAC 124). The LLC sublayer 122 manages communications between devices over a single link of a network to allow overlying internetwork layer access to the services of the LAN without regard to the actual network implementation. More specifically, the LLC layer provides for environments that need connectionless or connection-oriented services at the data link layer.
The MAC sub-layer 124 is primarily concerned with controlling access to the transmission medium in an orderly manner and, to that end, defines rules or procedures by which the stations must abide in order to share the medium. In order for multiple stations to share the same medium and still uniquely identify each other, the MAC sublayer defines a hardware or data link address called the MAC address. This MAC address is unique for each station interfacing to a LAN. The MAC layer further provides framing functions including the addition of head and trailer information needed to identify the boundaries of frames to synchronize communication between source and destination stations.
The functions provided at these lowest sub-levels are generally standard and most LAN implementations are in accord with one of three IEEE LAN standards. IEEE 802.3 carrier sense multiple access with collision detection (CSMA/CD), IEEE 802.4 token bus, or IEEE 802.5 token ring. For example, Ethernet is a LAN architecture that uses CSMA/CD for media access control.
The primary network layer protocol of the Internet architecture is the Internet protocol (IP) contained within the internetwork layer 116. IP is primarily a connectionless network protocol that provides internetwork routing, fragmentation, and reassembly of datagrams and that relies on transport protocols for end-to-end reliability. An example of such a transport protocol is the Transmission Control Protocol (TCP) contained within the transport layer 114. Notably, TCP provides connection-oriented services to the upper layer protocols of the Internet architecture. Although the two protocols TCP and IP are but two of the building blocks required for the complete Internet communications architecture, the term TCP/IP is commonly used to refer to this architecture.
Connection oriented services generally involve three distinct phases: connection establishment, data transfer, and connection termination. During connection establishment, a single path is found between the source and destination stations. Once the connection has been established, data is transferred sequentially over that established path and, when the connection is no longer needed, the path is terminated. As described more fully herein, the transport layer 114 and the internetwork layer 116 are substantially involved in providing predefined sets of services to aid in connecting the source station to the destination station when establishing application-to-application communication sessions.
Data transmission over the LAN 100 therefore consists of generating data in, e.g., sending process 104 executing on the source station 110, passing that data to the application layer 112 and down through the layers of the protocol stack 125, where the data are sequentially formatted as a frame for delivery onto the channel 180 as bits. Those frame bits are then transmitted over an established connection of channel 180 to the protocol stack 175 of the destination station 150 where they have passed up that stack to a receiving process 174. Data flow is schematically illustrated by solid arrows.
Although actual data transmission occurs vertically through the stacks, each layer is programmed as though such transmission were horizontal. That is, each layer in the source station 110 is programmed to transmit data to its corresponding layer in the destination station 150, as schematically shown by dotted arrows. To achieve this effect, each layer of the protocol stack 125 in the source station 110 typically adds information (in the form of a header field) to the data frame generated by the sending process as the frame descends the stack. At the destination station 150, the various encapsulated headers are stripped off one-by-one as the frame propagates up the layers of the stack 175 until it arrives at the receiving process. There are several network protocols used to interconnect LANs or other communication links, such as point-to-point, and Systems Network Architecture (SNA).
There are many protocols for transmitting voice and/or video signal transmissions, e.g. Internet Telephony, over a network. The initial signaling information, as well as the media stream itself, is packetized in packets and transferred over the network. In particular, the protocol typically employed for the Internet is IP, as previously described. All packets in the IP network are routed using IP addresses, and accordingly a calling device, or any intermediate entities that handle Internet Telephony need to have knowledge of the IP address of a called device to convey the information to the destination device. The setting up and use of such a telephony interconnection (audio and/or video) using the Internet implies two basic presumptions, namely, (1) that the IP address of the calling device and called device remains static over time, and (2) the IP address of the called device is known to the public. Otherwise, if one of the IP addresses changes before a call is connected or during a call, then the data will not reach the intended destination device.
In a manner similar to a telephone book, a device may register their xe2x80x9cnickxe2x80x9d (alias address, user ID) and current IP address with a xe2x80x9cgatekeeperxe2x80x9d so that others may obtain their IP address by referring to that xe2x80x9cnickxe2x80x9d. The xe2x80x9cnickxe2x80x9d may be any type of identification of a particular device or user. In essence, the xe2x80x9cgatekeeperxe2x80x9d includes the relationship between the xe2x80x9cnickxe2x80x9d of a user and their current IP address. One implementation of a gatekeeper is defined in the ITU-T H.323 specification, incorporated by reference herein. The H.323 protocol includes a gatekeeper discovery process for an endpoint (device on the network) to determine which gatekeeper to register with. This may be done manually or automatically. After determining which gatekeeper to register with the endpoint joins a xe2x80x9czonexe2x80x9d, and informs the gatekeeper of its IP address and nick.
There are a limited number of IP addresses available to network devices, including devices on a LAN or devices connected through point-to-point connections, such as a personal computer or a workstation. If there are a large number of devices on a particular network then there may be more devices than unique available IP addresses. To maximize the availability of IP addresses, they are typically dynamically assigned to each network device when the network device is in use. Accordingly, during different sessions the IP address for a particular device may change. Unfortunately, any calling device will not be informed of the different IP address so the called device needs to register again with the gatekeeper to provide its current IP address.
Referring to FIG. 2, a network structure 200 may include endpoint A 202 connected to the IP network 204 through a LAN 206 and a router 208. Endpoint B 210 is a remote device connected directly to the IP network 204. The gatekeeper 212 is connected to the IP network 204 to manage the community of users, in term of address resolution (nick to IP address), authentication, billing, etc. The LAN 206 which has access to the IP network 204 through the router 208, normally includes at least one address server 214. The address server 214 of the LAN 206 dynamically assigns IP addresses, typically based upon usage, to devices on the LAN 206 to permit sharing of a limited number of IP addresses available. In this manner, the devices connected to the LAN 206 do not each require a permanent unique IP address, which may not be available if there are a large potential number of users on the LAN 206. The limitation of temporary and unknown IP addresses for the Internet Telephony exists in this environment.
One potential solution to the limitation of using a temporary IP address, especially for Internet telephony, is for the device to request to the address server an unlimited duration for the current IP address. Typically address servers are not designed to provide unlimited duration IP addresses so such a request is either ignored, or such a request for an unlimited IP address is not guaranteed. In addition, the address server may not have sufficient available addresses to supply the demand for such requests.
Another potential solution to the limitation of using a temporary IP address is for the device to request an extension of the IP address prior to it being terminated. While many address servers will accommodate such a request, it is not guaranteed by the address server.
What is desired, therefore, is a system that permits the effective termination of packet-based communications in an environment where the network ad dress is dynamically and temporarily assigned.
The pre set invention overcomes the aforementioned drawbacks of the prior art in a first embodiment by providing a system that obtains a second address, such as a unique IP address, from a called device by a calling device across a computer network. A first address and nick related to the called device is registered with a third device interconnected with the computer network, such as a gatekeeper, where the first address is associate with multiple devices, such as a sub-network broadcast address. The second device requests the first address from the third device by using the nick, and then initiates a first transfer of data, such as a call setup, from the second device to the first device using said first address. The first device receives the first transfer of data and in response requests a second address free from associate with said multiple devices from a fourth device, such as an address server. The first devices receives the second address from the fourth device and in response provides the second address to the second device. In this manner, the temporary dynamic allocation of address is alleviated by using an address registered with the gatekeeper that remains constant over time.
In another embodiment a fifth device, such as a call agent, is employed whose address is registered with the third device, e.g. gatekeeper. In addition, the first data transfer is directed to the third device, which in response passes the data transfer to the appropriate device, such as the first device. The first device then obtains a unique address and provides that address to the second device. In this manner, in environments that do not permit sub-network broadcasts the advantages of the present invention are still realized.